//
//  SecondViewController.swift
//  WKWebViewTest
//
//  Created by 刘礼燕 on 2017/8/30.
//  Copyright © 2017年 LLyan. All rights reserved.
//

import UIKit
import SnapKit

class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    var tableView:UITableView!
    var label:UILabel?
    var numrows = 20

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.white
        
        
        tableView = UITableView()
        tableView.delegate = self
        tableView.dataSource = self
        self.view.addSubview(tableView)
        tableView.snp.makeConstraints { (make) in
            make.edges.equalTo(0)
        }
        
        
        
        
        
        
        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
        
   
        
    }
    
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return numrows
        
        
    }
    
    //预定义行高
    func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
        return 80
    }
    
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 80
        
        
    }
    
    
    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        //修改分割线的宽度
//        cell.separatorInset = UIEdgeInsets.zero
        cell.layoutMargins = UIEdgeInsets.zero
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        //使用系统Cell
//        let identifier = "secondCell"
//        var cell = tableView.dequeueReusableCell(withIdentifier: identifier)
//        if cell == nil {
//            cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: identifier)
//        }
//        
//        cell?.imageView?.backgroundColor = UIColor.red
//        cell?.textLabel?.text = "Cell Row \(indexPath.row)"
        
//        return cell!
        
        
        let cell:SecondCell = SecondCell(style: UITableViewCellStyle.default, reuseIdentifier: SecondCell.identifier)
        
        
        
        if indexPath.row % 2 == 0 {
            cell.titleLabel?.text = "swift自定义Cell"
            cell.detailLabel?.text = "最近在自学Swift，想要写一个自定义Cell，可是网上查了好多资料发现大家都是跟Xib结合使用的，本人对Xib不是特别擅长，所以想实现一款纯代码的自定义Cell"
        }else{
            
            cell.titleLabel?.text = "自定义Cell测试"
            cell.detailLabel?.text = "这是一个测试cell"
            
        }
        
        
        return cell
    }
    
    
    //用于确定指定行是否可以编辑
    func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        return true
    }
    
    //返回cell的编辑模式
//    func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
//        return UITableViewCellEditingStyle.none
//    }
    
    //执行处理指定行的删除或添加工作
//    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
//        
//        switch editingStyle {
//        case .insert:
//            /**关联从数据模型中添加相对应的数据*/
//            numrows += 1
//            tableView.insertRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
//            
//        case .delete:
//            /**关联从数据模型中删除相对应的数据*/
//            numrows -= 1
//            tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
//            
//        default:
//            break
//            
//        }
//        
//    }
    
    //允许将附加操作或按钮添加到一行内的行编辑模式
    //该方法与commit editingStyle: forRowAt:方法冲突，不能同时用
    func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
        
        let editAciton = UITableViewRowAction(style: .normal, title: "Edit") { ( action, indexPath) in
            self.numrows += 1
            tableView.insertRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
        }
        editAciton.backgroundColor = UIColor.blue

        let deleteAction = UITableViewRowAction(style: .destructive, title: "Delete") { (action, indexPath) in
            self.numrows -= 1
            tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
        }
        
        
        return [deleteAction, editAciton]
    }
    
    
    
    
    

    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */

}
